<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>

  严格模式（兼容IE10+）

  规范性体现在：
  1. 变量
  2. 对象
  3. 函数


  变量：1.变量使用前必须声明（否则报错）
       2. 不能直接对变量 delete;(从静默失败-》直接报错)

  对象：1.属性描述符 出现不当操作（静默失败-》直接报错）（唯独enumerable不会报错）

  函数：1.参数唯一
        2.实参和形参的映射关系不存在
        3.不能使用arguments.callee caller
        4.不允许使用eval(), width()
        5.eval arguments 不能作为标识符
        6.不允许出现八进制数
        7.函数内的默认this指向变为 undefined



  <script>
    // "use strict"

    function test() {
      console.log(this);
    }
    test()

    // a = 1
    // console.log(a);

    // var a = 1
    // delete a // 严格模式下直接报错 非严格模式会静默失败（执行但是不生效，不会报错）
    // console.log(a); 

    // var obj = {
    //   name: 'zhangsan'
    // }
    // console.log(Object.getOwnPropertyDescriptor(obj, 'name'));
    // Object.defineProperty(obj, 'name', {
    //   configurable: 'false'
    // })
    // delete obj.name (开启严格模式直接报错)





  </script>
</body>
</html>